package topic;

/**
 * @Author: 姚凤桥
 * @Date: 2022/3/28 9:32
 * @Description: 在一个升序的数组里，每个元素代表数轴上的每个点，先有一根长度为l的绳子，将它放在数轴上，求绳子最多能覆盖多少个点
 */
public class Topic01 {
    public static void main(String[] args) {
        int[] arr = {2, 4, 8, 9, 12, 17};
        System.out.println(maxCount(arr,5));
    }

    /**
     * 将绳子左侧放在数组第一个元素，求覆盖的点数，在将绳子左侧放在第二个元素，依次类推
     *
     * @param arr
     * @param l
     * @return
     */
    public static int maxCount(int[] arr, int l) {
        int maxCount = Integer.MIN_VALUE;
        for (int i = 0; i < arr.length; i++) {
            for (int j = i; j < arr.length; ) {
                if (arr[j] - arr[i] <= l) {
                    j++;
                } else {
                    maxCount = Math.max(maxCount, j - i);
                    break;
                }
            }
        }
        return maxCount;
    }
}
